;Assembler header file for StringSet
;written by DefMod (Dec 31 2005) on Sat Dec 31 14:07:20 2005
;Jonathan Coxhead, jonathan@doves.demon.co.uk, 5 Sept 1995

        [       :LNOT: :DEF: StringSet_Hdr
        GBLS    StringSet_Hdr

        [       :LNOT: :DEF: Get_Types
        GBLS    Get_Types
        ]
        [       :LNOT: :DEF: Types_Hdr
Get_Types                       SETS    "GET oslib/Types.Hdr"
        |
Get_Types                       SETS    ""
        ]
        $Get_Types

        [       :LNOT: :DEF: Get_Toolbox
        GBLS    Get_Toolbox
        ]
        [       :LNOT: :DEF: Toolbox_Hdr
Get_Toolbox                     SETS    "GET oslib/Toolbox.Hdr"
        |
Get_Toolbox                     SETS    ""
        ]
        $Get_Toolbox

        [       :LNOT: :DEF: Get_Gadget
        GBLS    Get_Gadget
        ]
        [       :LNOT: :DEF: Gadget_Hdr
Get_Gadget                      SETS    "GET oslib/Gadget.Hdr"
        |
Get_Gadget                      SETS    ""
        ]
        $Get_Gadget

;Symbols for constants
Class_StringSet                 *       &380
StringSet_GenerateUserValueChanged *       &1
StringSet_GenerateSetValueChanged *       &2
StringSet_Writable              *       &4
StringSet_GenerateAboutToBeShown *       &8
StringSet_NoDisplay             *       &10
StringSet_Justification         *       &60
StringSet_JustificationShift    *       5
StringSet_JustificationLeft     *       &0
StringSet_JustificationRight    *       &1
StringSet_JustificationCentred  *       &2
StringSet_GetAlphanumericField  *       &1
StringSet_GetPopUpMenu          *       &2
Action_StringSetValueChanged    *       &8288E
Action_StringSetAboutToBeShown  *       &8288F
StringSet_ValueTooLong          *       &1

;Symbols for structure offsets and sizes
                                ^       0
StringSet_Gadget_string_set     #       Toolbox_MsgReference
StringSet_Gadget_title          #       Toolbox_MsgReference
StringSet_Gadget_initial_selected_string #       Toolbox_MsgReference
StringSet_Gadget_selected_string_limit #       Int
StringSet_Gadget_allowable      #       Toolbox_MsgReference
StringSet_Gadget_allowable_limit #       Int
StringSet_Gadget_prev           #       Toolbox_C
StringSet_Gadget_next           #       Toolbox_C
StringSet_Gadget                *       @

                                ^       0
StringSet_Object                Gadget_Object_MEMBERS
StringSet_Object_string_set     #       Toolbox_MsgReference
StringSet_Object_title          #       Toolbox_MsgReference
StringSet_Object_initial_selected_string #       Toolbox_MsgReference
StringSet_Object_selected_string_limit #       Int
StringSet_Object_allowable      #       Toolbox_MsgReference
StringSet_Object_allowable_limit #       Int
StringSet_Object_prev           #       Toolbox_C
StringSet_Object_next           #       Toolbox_C
StringSet_Object                *       @

                                ^       0
StringSet_ActionValueChanged_value #       216*Char
StringSet_ActionValueChanged    *       @

                                ^       0
StringSet_ActionValueChangedBlock Toolbox_ActionHeader_MEMBERS
StringSet_ActionValueChangedBlock_value #       216*Char
StringSet_ActionValueChangedBlock *       @

StringSet_ActionAboutToBeShownBlock *       Toolbox_ActionHeaderBase


;Symbols for SWI's and SWI reason codes
StringSet_SetAvailable          *       &380
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = window (Toolbox_O)
   ;  R2 = &380
   ;  R3 = string_set (Toolbox_C)
   ;  R4 -> set (String)

StringSet_SetSelected           *       &382

StringSet_SetSelectedString     *       &0
   ;Entry
   ;  R0 = &0 :OR: flags (Bits)
   ;  R1 = window (Toolbox_O)
   ;  R2 = &382
   ;  R3 = string_set (Toolbox_C)
   ;  R4 -> selection (String)

StringSet_SetSelectedIndex      *       &1
   ;Entry
   ;  R0 = &1 :OR: flags (Bits)
   ;  R1 = window (Toolbox_O)
   ;  R2 = &382
   ;  R3 = string_set (Toolbox_C)
   ;  R4 = index (Int)

StringSet_GetSelected           *       &383

StringSet_GetSelectedString     *       &0
   ;Entry
   ;  R0 = &0 :OR: flags (Bits)
   ;  R1 = window (Toolbox_O)
   ;  R2 = &383
   ;  R3 = string_set (Toolbox_C)
   ;  R4 = buffer (pointer to String)
   ;  R5 = size (Int)
   ;Exit
   ;  R5 = used (Int)

StringSet_GetSelectedIndex      *       &1
   ;Entry
   ;  R0 = &1 :OR: flags (Bits)
   ;  R1 = window (Toolbox_O)
   ;  R2 = &383
   ;  R3 = string_set (Toolbox_C)
   ;Exit
   ;  R0 = index (Int)

StringSet_SetAllowable          *       &384
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = window (Toolbox_O)
   ;  R2 = &384
   ;  R3 = string_set (Toolbox_C)
   ;  R4 -> allowable (String)

StringSet_GetComponents         *       &386
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = window (Toolbox_O)
   ;  R2 = &386
   ;  R3 = string_set (Toolbox_C)
   ;Exit
   ;  R0 = alphanumeric_field (Toolbox_C)
   ;  R1 = popup_menu (Toolbox_C)

        ]
        END
